草庐IT

c++ - std::move 操作 C++

全部标签

windows - 在应用程序空闲时执行操作

我有一个非常简单的应用程序,其中包含一个表单、一个richedit和一个菜单。我正在尝试自动将文本保存在richedit上并执行其他任务,但仅应用程序处于空闲状态时-当用户未写入或应用程序失去焦点或其他任何情况时。我尝试从互联网上找到的大量示例代码创建一个OnIdle事件处理程序,但它的作用恰恰相反,它会在我使用该应用程序时激活。这link是一个例子。我还用了一个计时器来检查用户最后一次写信给richedit是什么时候,但如果可能的话我宁愿不使用计时器。有谁知道如何检测应用程序是否空闲并在空闲时运行一些代码?我正在使用delphi7。 最佳答案

c - 测试文件/目录是否只读

好吧,我是一个C新手。如何在Windows上测试文件是否为只读。我试图通过GetFileAttributes函数获得一些东西,但无济于事。给定文件路径,测试文件是否为只读的正确方法是什么?编辑:所以我仍然坚持这一点。我想检查用户是否有权在C:\ProgramFiles中添加和编辑文件...但我似乎无法获得任何建议。当我使用!(GetFileAtrributes(path)&FILE_ATTRIBUTES_READONLY)时,它表示该目录不是只读的。然后我尝试编写一个文件并测试它是否有效:strcat(path,"\\testFile000");FILE*test=0;test=fop

c - 测量上下文切换时间 C (Windows)

我需要实现一种方法来测量Windows中线程间上下文切换的时间和CPU周期。这是我的代码#include#include#includeLARGE_INTEGERinitialTimeStamp,finalTimeStamp,freq;DWORDThreadProc(LPVOIDlpdwThreadParam){SwitchToThread();return0;}intmain(){intresult;HANDLEhThread;QueryPerformanceFrequency(&freq);hThread=CreateThread(NULL,0,(LPTHREAD_START_RO

c++ - 将 ListView 控件滚动到特定项目

有没有办法滚动ListView(在报告View中)以便特定项目位于顶部?我能找到的最接近的是ListView_EnsureVisible,但它只能确保项目可见-它不允许精细控制项目出现的位置。 最佳答案 ListView_EnsureVisible()滚动ListView以使项目可见,但它通常(但不总是)将项目放置在ListView的中间附近。要让item出现在顶部,先调用ListView_EnsureVisible(),再调用ListView_GetTopIndex()确定最上面可见的item,然后用ListView_GetIte

.net - 如何操作windows程序

我有一个Windows应用程序,我需要能够以编程方式进行操作。该程序是为使用.NET框架的版本2而编写的。是否有任何库或方法以编程方式操作该程序的元素(它很可能不使用标准的Windows窗体组件)。理想情况下,我需要能够模拟鼠标点击并抓取文本字符串。 最佳答案 参见mypostinathreadaboutsendingmessagestowindows.使用这些API函数,您可以轻松控制或改变其他窗口。常见的例子是最大化另一个窗口,最小化另一个窗口,从View中隐藏另一个窗口,捕获另一个窗口并将其放置在您自己的窗口中(设置其父窗口)

c - 如何在 Windows 上安装 JudyArrays(C 库)

我知道这听起来可能是个很愚蠢的问题,但我在安装下载的库方面经验不足...无论如何,我从sourceforge下载了JudyArrays的源代码(对于那些不知道它的人来说,这是一个用于256-trie的C库),安装说明引用了make命令。我试着下载thisutility,但我无法让它工作。哪个是正确的目标makefile?我设法得到的是:"..path\Makefile.in":15:***missingseparator.Stop.我尝试使用谷歌搜索寻求帮助,但没有找到任何东西,要么是我使用错误的查询字符串进行搜索,要么我是整个星球上唯一无法安装它的笨蛋...有什么帮助吗?有没有更简单

c++ - 使用 GetModuleHandle 获取指向 IMAGE_DOS_HEADER 的指针?

一旦我的进程加载到内存中,我就试图获取它的图像库。据我了解,您可以调用GetModuleHandle来获取图像库。我的问题是,返回的句柄是否实质上指向IMAGE_DOS_HEADER结构,以便您可以执行以下操作:PIMAGE_DOS_HEADERDosHeader;DosHeader=(PIMAGE_DOS_HEADER)GetModuleHandle(NULL);如果这不正确,您还可以使用什么其他方法? 最佳答案 这是正确的,但如果您想要dll的模块句柄,则需要指定其路径。否则,您将获得进程exe的句柄。您还应该首先检查返回的HM

c - 为什么这个 MSVC API 是这样定义的?

errno_t_dupenv_s(char**buffer,size_t*sizeInBytes,constchar*varname);我有几个问题:为什么需要指向指针(**)的指针而不是指针(*)?为什么sizeInBytes是必需的,strlen(buffer)不可用吗? 最佳答案 msvc下任何以_s为后缀的函数都是安全函数,这意味着它不会对传递的数据的完整性做出任何假设。正是出于这个原因,字符串的长度是必需的,因为您不能假设它以null终止或根本终止(您可能也只想要一半的字符串,但这是副作用)。安全函数都返回错误代码,这样就

windows - 从 "chinese Windows"发送 std::wstring 到 "arabic Windows"

我有一个套接字,我通过它发送序列化的std::wstring,例如,从中文版的Windows到使用阿拉伯语UI的Unix系统。我不明白我的Unix系统(或其他任何系统)如何知道这些std::wstring是中文的,我没有看到“代码页”(又名国家语言?)存储在std中::wstring,我是否必须将自己与可能的每个std::wstring的代码页相关联?我肯定错过了一些东西,因为这看起来是我们相互联系的世界中的一个基本问题......谢谢, 最佳答案 wstring的目的是允许整个Unicode字符集,包括中文和阿拉伯语以及人类已知的

c - FIFO 不会在读取时阻塞

为什么下面的程序不会在第二次read调用时阻塞?intpid=fork();if(pid){intfifo=open("testfifo",O_RDWR);charbuf[20];while(1){read(fifo,buf,10);puts(buf);}}else{intfifo=open("testfifo",O_WRONLY);write(fifo,"teststring",10);close(fifo);}return0;第二个read调用继续返回0,即使fifo变空并且它应该阻塞read调用。我错过了什么吗?操作系统是Windows,管道是用mknodtestfifop创建的